<?php

class Fichero
{
	# Lee un fichero, parsea las variables y lo devuelve como cadena.
	public static function ReadAndParse($fichero, $post = "")
	{
		if(!file_exists($fichero))
		{
			Debug::error("Fichero '$fichero' no encontrado.");
		}
		
		Debug::say("Parseando e incluyendo '$fichero'");
		$cadena = file_get_contents($fichero, 1024);

		# Primero la fecha:
		while(ereg("\\$\{(DATE)\}", $cadena, $aRegs))
		{
			$cadena = str_replace($aRegs[0], gmdate("r"), $cadena);
		}
		while(ereg("\\$\{(FECHA)\}", $cadena, $aRegs))
		{
			$cadena = str_replace($aRegs[0], date("d-m-Y@H:i:s"), $cadena);
		}
		
		# Parsing mediante expresiones regulares:
				
		# CONSTANTES ${CONSTANTE}:
		while(ereg("\\$\{([A-Z]*)\}", $cadena, $aRegs))
		{
			Debug::dump($aRegs);
			Debug::say("  Replace de $aRegs[0] por ".constant($aRegs[1])."...");
			$cadena = str_replace($aRegs[0], constant($aRegs[1]), $cadena);
		}
		
		# Variables del post ${post:key}:
		if(!empty($post) and is_array($post))
		{
			while(ereg("\\$\{post\:([a-z_]*)\}", $cadena, $aRegs))
			{
				Debug::dump($aRegs);
				Debug::say("  Replace de $aRegs[0] por post['".$aRegs[1]."']...");
				$cadena = str_replace($aRegs[0], $post[$aRegs[1]], $cadena);
			}
		}		
		
		return $cadena;
	}

	# Lee un fichero y lo devuelve como cadena.
	public static function Read($fichero)
	{
		if(!file_exists($fichero))
		{
			Debug::error("Fichero '$fichero' no encontrado.");
		}
		
		Debug::say("Incluyendo '$fichero'");
		return file_get_contents($fichero, 1024);
	}
}